# 作者： 李泉志
# 2025年01月05日17时38分秒
# 2947029073@qq.com

# 练习列表基本使用，排序，生成式等各种操作（与上课的代码保持一致）
if __name__ == '__main__':

    my_list = ['apple', 'banana', 'orange', 'pear']
    print('原始列表:', my_list)

    # 1.按索引取值
    print('按索引1取值:', my_list[1])

    # 2.查找元素
    print('index查找元素apple:', my_list.index('apple'))

    # 3.修改元素
    my_list[0] = 'li'
    print('修改0元素:', my_list)

    # 4.增加元素
    my_list.append('zhangsan')
    print('append增加元素zhangsan:', my_list)
    my_list.insert(1, 'apple')
    print('insert插入元素apple到1:', my_list)

    # 5.删除元素
    my_list.remove('li')
    print('remove删除元素li:', my_list)

    my_list.pop()
    print('pop删除最后一个元素:', my_list)

    my_list.pop(1)
    print('pop删除索引为1的元素:', my_list)

    del my_list[0]
    print('del删除索引为0的元素:', my_list)

    my_list.clear()
    print('clear清空列表:', my_list)

    del my_list  # 删除列表

    print('-' * 50)
    # 6.统计元素
    my_list = [1, 2, 3, 2, 1, 6, 4, 5]
    print('原始列表:', my_list)
    print('统计元素', len(my_list))
    print('统计元素1的个数:', my_list.count(1))

    # 7.排序
    my_list.sort()
    print('排序:', my_list)
    my_list.sort(reverse=True)
    print('反向排序:', my_list)
    my_list.reverse()
    print('逆序:', my_list)

    # 8.列表遍历
    print('遍历: ', end='')
    for i in my_list:
        print(i, end=' ')
    print()

    # 9.列表生成式
    my_list = [x for x in range(2, 11)]
    print('列表生成式:', my_list)

    # 双重for循环生成列表
    my_list = [j for i in range(10) for j in range(i)]
    print('双重for循环生成列表:', my_list)

    # 二维列表
    my_list = [[col * row for col in range(5)] for row in range(5)]
    print('二维列表:', my_list)
    print('二维列表第3行第4列元素:', my_list[2][3])

    # 二维转一维
    a = [x for row in my_list for x in row]
    print('二维转一维:', a)
